package org.sdp.pearproject.service.impl;

import com.alibaba.fastjson.JSONObject;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import org.sdp.pearproject.dto.request.*;
import org.sdp.pearproject.dto.response.*;
import org.sdp.pearproject.dao.domain.*;
import org.sdp.pearproject.service.*;
import org.sdp.pearproject.service.custom.*;

import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;

/**
 * @ClassName: ProjectServiceImpl
 * @Description:
 * @Author: SDP
 * @Date: 2022-07-08
 * @Version: 1.0
 * Table: pear_project
 * Comment:
 * 项目表
 */
@Service
public class ProjectServiceImpl extends ProjectServiceCustomImpl implements ProjectService {

    static {
        beanClassNameMap.put("project", "projectServiceImpl");
        listMethodNameMap.put("project", "listProject");
        listMethodParameterClassNameMap.put("project", "ProjectQueryRequest");
        updateMethodNameMap.put("project", "updateProject");
        updateMethodParameterClassNameMap.put("project", "ProjectUpdateRequest");
    }

    @Transactional(rollbackFor = Exception.class)
    @Override
    public Integer addProject(ProjectAddRequest request) throws Exception {
        super.fixRequest("project", "add", request);
        return super.addProject(request);
    }

    @Transactional(rollbackFor = Exception.class)
    @Override
    public Integer updateProject(ProjectUpdateRequest request) throws Exception {
        Project record = null;
        record = projectMapper.selectByPrimaryKey(request.getId());
        super.fixRequest("project", "update", request, record);
        return super.updateProject(request);
    }

    @Transactional(rollbackFor = Exception.class)
    @Override
    public Integer deleteProject(ProjectDeleteRequest request) throws Exception {
        if (needCheckDeleteList(request)) {
            List<Project> list = null;
            ProjectExample example = new ProjectExample();
            example.createCriteria().andIdIn(request.getIdList());
            list = projectMapper.selectByExample(example);
            fixRequest("project", "delete", request, list);
        } else {
            fixRequest("project", "delete", request);
        }
        return super.deleteProject(request);
    }

    @Override
    public ProjectQueryResponse queryProject(ProjectQueryRequest request) throws Exception {
        super.checkNonNull(request.getId(), "id");
        ProjectQueryResponse result = super.queryProject(request);
        checkResult("project", "query", request, result);
        return result;
    }

    @Override
    public List<ProjectQueryResponse> listProject(ProjectQueryRequest request) throws Exception {
        List<ProjectQueryResponse> list = super.listProject(request);
        checkResult("project", "list", request, list);
        return list;
    }

    @Override
    public Integer countProject(ProjectQueryRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count", request);
        return super.countProject(request);
    }

    @Override
    public BaseStatResponse statProject(ProjectQueryRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat", request);
        return super.statProject(request);
    }

    @Override
    public List<ProjectForProjectResponse> project(ProjectForProjectRequest request) throws Exception {
        super.fixRequest("project", "project", request);
        List<ProjectForProjectResponse> list = super.project(request);
        checkResult("project", "project", request, list);
        return list;
    }

    @Override
    public Integer countForProject(ProjectForProjectRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_project", request);
        return super.countForProject(request);
    }

    @Override
    public BaseStatResponse statForProject(ProjectForProjectRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_project", request);
        return super.statForProject(request);
    }

    @Override
    public List<ProjectForProjectMemberListForInviteResponse> projectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception {
        super.fixRequest("project", "project_member_list_for_invite", request);
        List<ProjectForProjectMemberListForInviteResponse> list = super.projectMemberListForInvite(request);
        checkResult("project", "project_member_list_for_invite", request, list);
        return list;
    }

    @Override
    public Integer countForProjectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_project_member_list_for_invite", request);
        return super.countForProjectMemberListForInvite(request);
    }

    @Override
    public BaseStatResponse statForProjectMemberListForInvite(ProjectForProjectMemberListForInviteRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_project_member_list_for_invite", request);
        return super.statForProjectMemberListForInvite(request);
    }

    @Override
    public List<ProjectForDepartmentResponse> department(ProjectForDepartmentRequest request) throws Exception {
        super.fixRequest("project", "department", request);
        List<ProjectForDepartmentResponse> list = super.department(request);
        checkResult("project", "department", request, list);
        return list;
    }

    @Override
    public Integer countForDepartment(ProjectForDepartmentRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_department", request);
        return super.countForDepartment(request);
    }

    @Override
    public BaseStatResponse statForDepartment(ProjectForDepartmentRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_department", request);
        return super.statForDepartment(request);
    }

    @Override
    public List<ProjectForTaskStagesResponse> taskStages(ProjectForTaskStagesRequest request) throws Exception {
        super.fixRequest("project", "task_stages", request);
        List<ProjectForTaskStagesResponse> list = super.taskStages(request);
        checkResult("project", "task_stages", request, list);
        return list;
    }

    @Override
    public Integer countForTaskStages(ProjectForTaskStagesRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_task_stages", request);
        return super.countForTaskStages(request);
    }

    @Override
    public BaseStatResponse statForTaskStages(ProjectForTaskStagesRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_task_stages", request);
        return super.statForTaskStages(request);
    }

    @Override
    public List<ProjectForTaskStagesTasksResponse> taskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception {
        super.fixRequest("project", "task_stages_tasks", request);
        List<ProjectForTaskStagesTasksResponse> list = super.taskStagesTasks(request);
        checkResult("project", "task_stages_tasks", request, list);
        return list;
    }

    @Override
    public Integer countForTaskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_task_stages_tasks", request);
        return super.countForTaskStagesTasks(request);
    }

    @Override
    public BaseStatResponse statForTaskStagesTasks(ProjectForTaskStagesTasksRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_task_stages_tasks", request);
        return super.statForTaskStagesTasks(request);
    }

    @Override
    public List<ProjectForOrganizationGetOrgListResponse> organizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception {
        super.fixRequest("project", "organization_get_org_list", request);
        List<ProjectForOrganizationGetOrgListResponse> list = super.organizationGetOrgList(request);
        checkResult("project", "organization_get_org_list", request, list);
        return list;
    }

    @Override
    public Integer countForOrganizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_organization_get_org_list", request);
        return super.countForOrganizationGetOrgList(request);
    }

    @Override
    public BaseStatResponse statForOrganizationGetOrgList(ProjectForOrganizationGetOrgListRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_organization_get_org_list", request);
        return super.statForOrganizationGetOrgList(request);
    }

    @Override
    public List<ProjectForNotifyNoReadsBaseResponse> notifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception {
        super.fixRequest("project", "notify_no_reads_base", request);
        List<ProjectForNotifyNoReadsBaseResponse> list = super.notifyNoReadsBase(request);
        checkResult("project", "notify_no_reads_base", request, list);
        return list;
    }

    @Override
    public Integer countForNotifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_notify_no_reads_base", request);
        return super.countForNotifyNoReadsBase(request);
    }

    @Override
    public BaseStatResponse statForNotifyNoReadsBase(ProjectForNotifyNoReadsBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_notify_no_reads_base", request);
        return super.statForNotifyNoReadsBase(request);
    }

    @Override
    public List<ProjectForNotifyNoReadsCountResponse> notifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception {
        super.fixRequest("project", "notify_no_reads_count", request);
        List<ProjectForNotifyNoReadsCountResponse> list = super.notifyNoReadsCount(request);
        checkResult("project", "notify_no_reads_count", request, list);
        return list;
    }

    @Override
    public Integer countForNotifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_notify_no_reads_count", request);
        return super.countForNotifyNoReadsCount(request);
    }

    @Override
    public BaseStatResponse statForNotifyNoReadsCount(ProjectForNotifyNoReadsCountRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_notify_no_reads_count", request);
        return super.statForNotifyNoReadsCount(request);
    }

    @Override
    public List<ProjectForProjectMemberIndexResponse> projectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception {
        super.fixRequest("project", "project_member_index", request);
        List<ProjectForProjectMemberIndexResponse> list = super.projectMemberIndex(request);
        checkResult("project", "project_member_index", request, list);
        return list;
    }

    @Override
    public Integer countForProjectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_project_member_index", request);
        return super.countForProjectMemberIndex(request);
    }

    @Override
    public BaseStatResponse statForProjectMemberIndex(ProjectForProjectMemberIndexRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_project_member_index", request);
        return super.statForProjectMemberIndex(request);
    }

    @Override
    public List<ProjectForAccountBaseResponse> accountBase(ProjectForAccountBaseRequest request) throws Exception {
        super.fixRequest("project", "account_base", request);
        List<ProjectForAccountBaseResponse> list = super.accountBase(request);
        checkResult("project", "account_base", request, list);
        return list;
    }

    @Override
    public Integer countForAccountBase(ProjectForAccountBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_account_base", request);
        return super.countForAccountBase(request);
    }

    @Override
    public BaseStatResponse statForAccountBase(ProjectForAccountBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_account_base", request);
        return super.statForAccountBase(request);
    }

    @Override
    public List<ProjectForAccountAuthResponse> accountAuth(ProjectForAccountAuthRequest request) throws Exception {
        super.fixRequest("project", "account_auth", request);
        List<ProjectForAccountAuthResponse> list = super.accountAuth(request);
        checkResult("project", "account_auth", request, list);
        return list;
    }

    @Override
    public Integer countForAccountAuth(ProjectForAccountAuthRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_account_auth", request);
        return super.countForAccountAuth(request);
    }

    @Override
    public BaseStatResponse statForAccountAuth(ProjectForAccountAuthRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_account_auth", request);
        return super.statForAccountAuth(request);
    }

    @Override
    public List<ProjectForProjectTemplateResponse> projectTemplate(ProjectForProjectTemplateRequest request) throws Exception {
        super.fixRequest("project", "project_template", request);
        List<ProjectForProjectTemplateResponse> list = super.projectTemplate(request);
        checkResult("project", "project_template", request, list);
        return list;
    }

    @Override
    public Integer countForProjectTemplate(ProjectForProjectTemplateRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_project_template", request);
        return super.countForProjectTemplate(request);
    }

    @Override
    public BaseStatResponse statForProjectTemplate(ProjectForProjectTemplateRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_project_template", request);
        return super.statForProjectTemplate(request);
    }

    @Override
    public List<ProjectForMenuMenuResponse> menuMenu(ProjectForMenuMenuRequest request) throws Exception {
        super.fixRequest("project", "menu_menu", request);
        List<ProjectForMenuMenuResponse> list = super.menuMenu(request);
        checkResult("project", "menu_menu", request, list);
        return list;
    }

    @Override
    public Integer countForMenuMenu(ProjectForMenuMenuRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_menu_menu", request);
        return super.countForMenuMenu(request);
    }

    @Override
    public BaseStatResponse statForMenuMenu(ProjectForMenuMenuRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_menu_menu", request);
        return super.statForMenuMenu(request);
    }

    @Override
    public List<ProjectForNodeBaseResponse> nodeBase(ProjectForNodeBaseRequest request) throws Exception {
        super.fixRequest("project", "node_base", request);
        List<ProjectForNodeBaseResponse> list = super.nodeBase(request);
        checkResult("project", "node_base", request, list);
        return list;
    }

    @Override
    public Integer countForNodeBase(ProjectForNodeBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_node_base", request);
        return super.countForNodeBase(request);
    }

    @Override
    public BaseStatResponse statForNodeBase(ProjectForNodeBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_node_base", request);
        return super.statForNodeBase(request);
    }

    @Override
    public List<ProjectForNotifyResponse> notify(ProjectForNotifyRequest request) throws Exception {
        super.fixRequest("project", "notify", request);
        List<ProjectForNotifyResponse> list = super.notify(request);
        checkResult("project", "notify", request, list);
        return list;
    }

    @Override
    public Integer countForNotify(ProjectForNotifyRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_notify", request);
        return super.countForNotify(request);
    }

    @Override
    public BaseStatResponse statForNotify(ProjectForNotifyRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_notify", request);
        return super.statForNotify(request);
    }

    @Override
    public List<ProjectForIndexSystemConfigBaseResponse> indexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception {
        super.fixRequest("project", "index_system_config_base", request);
        List<ProjectForIndexSystemConfigBaseResponse> list = super.indexSystemConfigBase(request);
        checkResult("project", "index_system_config_base", request, list);
        return list;
    }

    @Override
    public Integer countForIndexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_index_system_config_base", request);
        return super.countForIndexSystemConfigBase(request);
    }

    @Override
    public BaseStatResponse statForIndexSystemConfigBase(ProjectForIndexSystemConfigBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_index_system_config_base", request);
        return super.statForIndexSystemConfigBase(request);
    }

    @Override
    public List<ProjectForNodeAuthBaseResponse> nodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception {
        super.fixRequest("project", "node_auth_base", request);
        List<ProjectForNodeAuthBaseResponse> list = super.nodeAuthBase(request);
        checkResult("project", "node_auth_base", request, list);
        return list;
    }

    @Override
    public Integer countForNodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_node_auth_base", request);
        return super.countForNodeAuthBase(request);
    }

    @Override
    public BaseStatResponse statForNodeAuthBase(ProjectForNodeAuthBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_node_auth_base", request);
        return super.statForNodeAuthBase(request);
    }

    @Override
    public List<ProjectForMemberBaseResponse> memberBase(ProjectForMemberBaseRequest request) throws Exception {
        super.fixRequest("project", "member_base", request);
        List<ProjectForMemberBaseResponse> list = super.memberBase(request);
        checkResult("project", "member_base", request, list);
        return list;
    }

    @Override
    public Integer countForMemberBase(ProjectForMemberBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_member_base", request);
        return super.countForMemberBase(request);
    }

    @Override
    public BaseStatResponse statForMemberBase(ProjectForMemberBaseRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_member_base", request);
        return super.statForMemberBase(request);
    }

    @Override
    public List<ProjectForFileResponse> file(ProjectForFileRequest request) throws Exception {
        super.fixRequest("project", "file", request);
        List<ProjectForFileResponse> list = super.file(request);
        checkResult("project", "file", request, list);
        return list;
    }

    @Override
    public Integer countForFile(ProjectForFileRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_file", request);
        return super.countForFile(request);
    }

    @Override
    public BaseStatResponse statForFile(ProjectForFileRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_file", request);
        return super.statForFile(request);
    }

    @Override
    public List<ProjectForProjectFeaturesResponse> projectFeatures(ProjectForProjectFeaturesRequest request) throws Exception {
        super.fixRequest("project", "project_features", request);
        List<ProjectForProjectFeaturesResponse> list = super.projectFeatures(request);
        checkResult("project", "project_features", request, list);
        return list;
    }

    @Override
    public Integer countForProjectFeatures(ProjectForProjectFeaturesRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_project_features", request);
        return super.countForProjectFeatures(request);
    }

    @Override
    public BaseStatResponse statForProjectFeatures(ProjectForProjectFeaturesRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_project_features", request);
        return super.statForProjectFeatures(request);
    }

    @Override
    public List<ProjectForProjectVersionResponse> projectVersion(ProjectForProjectVersionRequest request) throws Exception {
        super.fixRequest("project", "project_version", request);
        List<ProjectForProjectVersionResponse> list = super.projectVersion(request);
        checkResult("project", "project_version", request, list);
        return list;
    }

    @Override
    public Integer countForProjectVersion(ProjectForProjectVersionRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_project_version", request);
        return super.countForProjectVersion(request);
    }

    @Override
    public BaseStatResponse statForProjectVersion(ProjectForProjectVersionRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_project_version", request);
        return super.statForProjectVersion(request);
    }

    @Override
    public List<ProjectForTaskSelfListResponse> taskSelfList(ProjectForTaskSelfListRequest request) throws Exception {
        super.fixRequest("project", "task_self_list", request);
        List<ProjectForTaskSelfListResponse> list = super.taskSelfList(request);
        checkResult("project", "task_self_list", request, list);
        return list;
    }

    @Override
    public Integer countForTaskSelfList(ProjectForTaskSelfListRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_task_self_list", request);
        return super.countForTaskSelfList(request);
    }

    @Override
    public BaseStatResponse statForTaskSelfList(ProjectForTaskSelfListRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_task_self_list", request);
        return super.statForTaskSelfList(request);
    }

    @Override
    public List<ProjectForProjectGetLogBySelfProjectResponse> projectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception {
        super.fixRequest("project", "project_get_log_by_self_project", request);
        List<ProjectForProjectGetLogBySelfProjectResponse> list = super.projectGetLogBySelfProject(request);
        checkResult("project", "project_get_log_by_self_project", request, list);
        return list;
    }

    @Override
    public Integer countForProjectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_project_get_log_by_self_project", request);
        return super.countForProjectGetLogBySelfProject(request);
    }

    @Override
    public BaseStatResponse statForProjectGetLogBySelfProject(ProjectForProjectGetLogBySelfProjectRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_project_get_log_by_self_project", request);
        return super.statForProjectGetLogBySelfProject(request);
    }

    @Override
    public List<ProjectForTaskLogResponse> taskLog(ProjectForTaskLogRequest request) throws Exception {
        super.fixRequest("project", "task_log", request);
        List<ProjectForTaskLogResponse> list = super.taskLog(request);
        checkResult("project", "task_log", request, list);
        return list;
    }

    @Override
    public Integer countForTaskLog(ProjectForTaskLogRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_task_log", request);
        return super.countForTaskLog(request);
    }

    @Override
    public BaseStatResponse statForTaskLog(ProjectForTaskLogRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_task_log", request);
        return super.statForTaskLog(request);
    }

    @Override
    public List<ProjectForTaskMemberResponse> taskMember(ProjectForTaskMemberRequest request) throws Exception {
        super.fixRequest("project", "task_member", request);
        List<ProjectForTaskMemberResponse> list = super.taskMember(request);
        checkResult("project", "task_member", request, list);
        return list;
    }

    @Override
    public Integer countForTaskMember(ProjectForTaskMemberRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "count_for_task_member", request);
        return super.countForTaskMember(request);
    }

    @Override
    public BaseStatResponse statForTaskMember(ProjectForTaskMemberRequest request) throws Exception {
        clearPageInfo(request);
        super.fixRequest("project", "stat_for_task_member", request);
        return super.statForTaskMember(request);
    }

    @Override
    public JSONObject login(ProjectForLoginRequest request) throws Exception {
        super.fixRequest("project", "login", request);
        JSONObject result = super.login(request);
        checkResult("project", "login", request, result);
        return result;
    }

    @Override
    public JSONObject eventsGetEventsListByCalendar(ProjectForEventsGetEventsListByCalendarRequest request) throws Exception {
        super.fixRequest("project", "events_get_events_list_by_calendar", request);
        JSONObject result = super.eventsGetEventsListByCalendar(request);
        checkResult("project", "events_get_events_list_by_calendar", request, result);
        return result;
    }

    @Override
    public List<Object> accountForbid(ProjectForAccountForbidRequest request) throws Exception {
        super.fixRequest("project", "account_forbid", request);
        List<Object> result = super.accountForbid(request);
        checkResult("project", "account_forbid", request, result);
        return result;
    }

    @Override
    public List<Object> accountResume(ProjectForAccountResumeRequest request) throws Exception {
        super.fixRequest("project", "account_resume", request);
        List<Object> result = super.accountResume(request);
        checkResult("project", "account_resume", request, result);
        return result;
    }

    @Override
    public ProjectForReadResponse read(ProjectForReadRequest request) throws Exception {
        super.fixRequest("project", "read", request);
        ProjectForReadResponse result = super.read(request);
        checkResult("project", "read", request, result);
        return result;
    }

    @Override
    public ProjectForIdToNameResponse idToName(ProjectForIdToNameRequest request) throws Exception {
        super.fixRequest("project", "id_to_name", request);
        ProjectForIdToNameResponse result = super.idToName(request);
        checkResult("project", "id_to_name", request, result);
        return result;
    }

    @Override
    public ProjectForNameToIdResponse nameToId(ProjectForNameToIdRequest request) throws Exception {
        super.fixRequest("project", "name_to_id", request);
        ProjectForNameToIdResponse result = super.nameToId(request);
        checkResult("project", "name_to_id", request, result);
        return result;
    }

    @Override
    public ProjectForTaskCreateCommentParamResponse taskCreateCommentParam(ProjectForTaskCreateCommentParamRequest request) throws Exception {
        super.fixRequest("project", "task_create_comment_param", request);
        ProjectForTaskCreateCommentParamResponse result = super.taskCreateCommentParam(request);
        checkResult("project", "task_create_comment_param", request, result);
        return result;
    }

    @Override
    public List<Object> projectCollectCollect(ProjectCollectionAddRequest request) throws Exception {
        super.fixRequest("project", "project_collect_collect", request);
        List<Object> result = super.projectCollectCollect(request);
        checkResult("project", "project_collect_collect", request, result);
        return result;
    }

    @Override
    public List<Object> projectMemberInviteMember(ProjectMemberAddRequest request) throws Exception {
        super.fixRequest("project", "project_member_invite_member", request);
        List<Object> result = super.projectMemberInviteMember(request);
        checkResult("project", "project_member_invite_member", request, result);
        return result;
    }

    @Override
    public InviteLinkQueryResponse inviteLinkSave(InviteLinkAddRequest request) throws Exception {
        super.fixRequest("project", "invite_link_save", request);
        InviteLinkQueryResponse result = super.inviteLinkSave(request);
        checkResult("project", "invite_link_save", request, result);
        return result;
    }

    @Override
    public List<ProjectForProjectMemberListForInviteResponse> projectMemberSearchInviteMember(ProjectForProjectMemberListForInviteRequest request) throws Exception {
        super.fixRequest("project", "project_member_search_invite_member", request);
        List<ProjectForProjectMemberListForInviteResponse> result = super.projectMemberSearchInviteMember(request);
        checkResult("project", "project_member_search_invite_member", request, result);
        return result;
    }

    @Override
    public List<ProjectForProjectResponse> selfList(ProjectForProjectRequest request) throws Exception {
        super.fixRequest("project", "self_list", request);
        List<ProjectForProjectResponse> result = super.selfList(request);
        checkResult("project", "self_list", request, result);
        return result;
    }

    @Override
    public JSONObject notifyNoReads(ProjectForNotifyNoReadsBaseRequest request) throws Exception {
        super.fixRequest("project", "notify_no_reads", request);
        JSONObject result = super.notifyNoReads(request);
        checkResult("project", "notify_no_reads", request, result);
        return result;
    }

    @Override
    public JSONObject account(ProjectForAccountBaseRequest request) throws Exception {
        super.fixRequest("project", "account", request);
        JSONObject result = super.account(request);
        checkResult("project", "account", request, result);
        return result;
    }

    @Override
    public JSONObject node(BaseRequest request) throws Exception {
        super.fixRequest("project", "node", request);
        JSONObject result = super.node(request);
        checkResult("project", "node", request, result);
        return result;
    }

    @Override
    public List<ProjectForMenuMenuResponse> index(ProjectForMenuMenuRequest request) throws Exception {
        super.fixRequest("project", "index", request);
        List<ProjectForMenuMenuResponse> result = super.index(request);
        checkResult("project", "index", request, result);
        return result;
    }

    @Override
    public JSONObject indexSystemConfig(BaseRequest request) throws Exception {
        super.fixRequest("project", "index_system_config", request);
        JSONObject result = super.indexSystemConfig(request);
        checkResult("project", "index_system_config", request, result);
        return result;
    }

    @Override
    public List<ProjectForAccountBaseResponse> accountAllList(BaseRequest request) throws Exception {
        super.fixRequest("project", "account_all_list", request);
        List<ProjectForAccountBaseResponse> result = super.accountAllList(request);
        checkResult("project", "account_all_list", request, result);
        return result;
    }

    @Override
    public List<Object> eventsSave(EventsAddRequest request) throws Exception {
        super.fixRequest("project", "events_save", request);
        List<Object> result = super.eventsSave(request);
        checkResult("project", "events_save", request, result);
        return result;
    }

    @Override
    public List<Object> loginOut(BaseRequest request) throws Exception {
        super.fixRequest("project", "login_out", request);
        List<Object> result = super.loginOut(request);
        checkResult("project", "login_out", request, result);
        return result;
    }

    @Override
    public Boolean taskCreateComment(ProjectForTaskCreateCommentParamRequest request) throws Exception {
        super.fixRequest("project", "task_create_comment", request);
        Boolean result = super.taskCreateComment(request);
        checkResult("project", "task_create_comment", request, result);
        return result;
    }

}
